package reflect;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectDemo6 {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
        Class cls = Person.class;
        Object obj = cls.newInstance();
        /*Class的方法:
            Method getMethod()
            Method[] getMethods()
            上述两个方法只能用于获取Class所表示的类的公开方法(包含从超类继承的)

            Method getDeclaredMethod()
            Method[] getDeclaredMethods()
            上述两个方法可以获取Class所表示的类中自己定义的方法包含私有的,不包含从超类继承的*/
        Method method = cls.getDeclaredMethod("privateMethod");
        method.setAccessible(true);//强行打开访问权限
        method.invoke(obj);

    }
}
